閱讀文章時常常會看到表達式、陳述式、函式表達式、函式陳述式,搞得我很黑人問號。
這篇來簡單看一下這些東西是什麼。
表達式的特徵就是:會回傳一個值。 也就是一段程式碼能夠形成一個值,就隸屬於表達式。
例如 1+1
使用了 + 運算子,會得到 2,所以屬於表達式。
接下來在 console 內輸入一些東西看看:
這些算數、運算、字串、function 等都會回傳值,所以都算表達式。
陳述式與表達式相反,會做某些事情但不會回傳值。
在 MDN 中的陳述式分為:
if...else
、continue
、try...catch
... etcvar
、const
、let
。class
、return
、function
... etcdo...while
、while
、for
... etcexport
、import
... etc函式表達式是一種將 function
指派給變數的一種方式,範例如下:
const fn = function(){
console.log("Hello World")
}
// 或是使用箭頭函數
const fn = () => {
console.log("Hello World")
}
因為前面使用 const
、let
、var
宣告,所以要特別注意提升(Hosting)的行為,另外必須使用匿名函式(Anonymous Function)。
平常我們使用函式的方法就是函式陳述式,如下:
function fn(){
console.log("Hello World")
}
這段函式也會因為 Hosting 的緣故存到記憶體,因此將 fn()
寫在前面也不會出錯。